
#ifndef JL_COMMON_H_CPP2
#define JL_COMMON_H_CPP2


//=== Cpp2 type declarations ====================================================


#include "cpp2util.h"

#line 1 "jl_common.cpp2"

#line 18 "jl_common.cpp2"
class jl_alloc_funcs;
 

//=== Cpp2 type definitions and function declarations ===========================

#line 1 "jl_common.cpp2"
#pragma once

#include <cstddef>


#define JL_MAX_DEPTH 128

// jl_malloc_func  =  (ctx: *void, sz: size_t) -> *void;
// 
// jl_realloc_func = (ctx: *void, ptr: *void, sz: size_t) -> *void;
// 
// jl_free_func : (ctx: *void, ptr: *void) -> void = {};

jl_alloc_func = (ctx: *void, sz: size_t) -> *void;

#line 18 "jl_common.cpp2"
class jl_alloc_funcs {
 public: jl_alloc_func malloc; 
 public: void* ctx; 
 public: jl_alloc_funcs() = default;
 public: jl_alloc_funcs(jl_alloc_funcs const&) = delete; /* No 'that' constructor, suppress copy */
 public: auto operator=(jl_alloc_funcs const&) -> void = delete;


#line 23 "jl_common.cpp2"
};

#line 1 "jl_common.cpp2"

//=== Cpp2 function definitions =================================================

#line 1 "jl_common.cpp2"

#endif
